home *** CD-ROM | disk | FTP | other *** search
Wrap
var maxTable={}; maxTable.create=function(id){ return {"objID":id,"id":id,"wrapperID":id+"_wrapper","tableTag":" width=\"96%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"","style":{"table":"maxTable","control":"maxTable-control","edit-control":"maxTable-edit-control","edit-note":"maxTable-edit-note","row":"maxTable-row","hover":"maxTable-hover","edit":"maxTable-edit","separator":"maxTable-separator","separator-hover":"maxTable-separator-hover","separator-edit":"maxTable-separator-edit"},"dataType":"array","columns":[],"data":[],"defaultRowData":[],"separatorType":"none","defaultSeparatorText":"---","lang":{"delete_confirm":"Are you sure to delete this item?","required":"\"%s\" can not be blank.","not_saved":"You have not saved your changes. Click \"OK\" to save now."},"allowInsert":true,"allowEdit":true,"allowEditSeparator":true,"showEditControl":true,"editControl":[{type:"move_up"},{type:"html",value:" "},{type:"move_down"},{type:"html",value:" | "},{type:"delete",hideOnNew:true},{type:"html",value:" | ",hideOnNew:true},{type:"save"},{type:"html",value:" | "},{type:"cancel"}],"controlUI":{"add":"Add Item","add_sep":"Add Separator","separator":" ","move_up":"<img src=\"images/btn_up.png\" />","move_down":"<img src=\"images/btn_down.png\" />","delete":"Delete","save":"Save","cancel":"Cancel","radio":"<img src=\"images/btn_radio.png\" />","radio_checked":"<img src=\"images/btn_radio_checked.png\" />","checkbox":"<img src=\"images/btn_check.png\" />","checkbox_checked":"<img src=\"images/btn_check_checked.png\" />"},"content":{"buildTableControls":null,"buildEditControls":null},"event":{"beforeInit":function(){ return true; },"afterInit":function(){ },"beforeDestroy":function(){ return true; },"afterDestroy":function(){ },"beforeEdit":function(){ return true; },"afterEdit":function(){ },"beforeCancel":function(){ return true; },"afterCancel":function(){ },"beforeAdd":function(){ return true; },"afterAdd":function(){ },"beforeUpdate":function(){ return true; },"afterUpdate":function(){ },"beforeDelete":function(_2){ return true; },"afterDelete":function(_3){ },"beforeRadioClick":function(_4,_5){ return true; },"afterRadioClick":function(_6,_7,_8){ },"beforeCheckboxClick":function(_9,_a){ return true; },"afterCheckboxClick":function(_b,_c){ }},"inAction":"","inEditRow":null,"inEditDataIndex":-1,"inEditBackupData":null,"inEditResultData":null,"moveOffset":0}; }; maxTable.init=function(_d){ _d.inAction="init"; if(!_d.event.beforeInit()){ return false; } maxTable.ui.attachTable(_d); _d.event.afterInit(); _d.inAction=""; }; maxTable.destroy=function(_e){ _e.inAction="destroy"; if(!_e.event.beforeDestroy()){ return false; } maxTable.ui.detachTable(_e); _e.event.afterDestroy(); delete _e; }; maxTable.ui={}; maxTable.ui.attachTable=function(_f){ if(!(_f.data instanceof Array)){ alert("maxTable.ui.attachTable : "+_f.id+".data is not an Array\n"+$toJSON(_f.data)); return; } var obj=$id(_f.wrapperID); if(obj){ obj.innerHTML=maxTable.ui.buildTable(_f); }else{ alert("maxTable.ui.attachTable : "+_f.wrapperID+" not Found"); } }; maxTable.ui.detachTable=function(_11){ var obj=$id(_11.wrapperID); if(obj){ obj.innerHTML=""; } }; maxTable.ui.buildTable=function(_13){ var _14="<table id=\""+_13.id+"\" "+_13.tableTag+" class=\""+_13.style["table"]+"\">\n"; _14+=maxTable.ui.buildHeader(_13); for(var i=0;i<_13.data.length;i++){ _14+=maxTable.ui.buildRow(_13,i); } _14+=maxTable.ui.buildFooter(_13); _14+="</table>\n"; return _14; }; maxTable.ui.buildHeader=function(_16){ var _17="<tr>\n"; for(var i=0;i<_16.columns.length;i++){ var _19=""; if(_16.columns[i].width){ _19+=" width=\""+_16.columns[i].width+"\""; } if(_16.columns[i].tagx){ _19+=_16.columns[i].tagx; } _17+="<th"+_19+">"+_16.columns[i].title+"</th>"; } _17+="</tr>\n"; return _17; }; maxTable.ui.buildFooter=function(_1a){ var _1b=""; if(_1a.allowInsert){ _1b+="<tr class=\""+_1a.style["control"]+"\">"+"<td colspan=\""+_1a.columns.length+"\">"; if(_1a.content["buildTableControls"]){ _1b+=_1a.content.buildTableControls(); }else{ _1b+="<a href=\"javascript:;\" onclick=\"maxTable.action.addRow("+_1a.objID+")\">"+_1a.controlUI["add"]+"</a>"; if(_1a.separatorType!="none"&&_1a.allowEditSeparator){ _1b+=" | "+"<a href=\"javascript:;\" onclick=\"maxTable.action.addRow("+_1a.objID+", true)\">"+_1a.controlUI["add_sep"]+"</a>"; } } _1b+="</td>"+"</tr>\n"; } return _1b; }; maxTable.ui.buildRow=function(_1c,_1d){ var _1e=""; var _1f=maxTable.ui.buildCellHTML(_1c,_1d); if(_1f.type=="array"){ _1e+="<tr onclick=\"maxTable.action.editRow("+_1c.objID+", this)\""+" onmouseover=\"this.className='"+_1c.style["hover"]+"'\" onmouseout=\"this.className='"+_1c.style["row"]+"'\""+" class=\""+_1c.style["row"]+"\">\n"; for(var i=0;i<_1f.data.length;i++){ _1e+="<td"+(_1c.columns[i].width?" width=\""+_1c.columns[i].width+"\"":"")+(_1c.columns[i].tagx?_1c.columns[i].tagx:"")+(_1f.data[i].onclick?" onclick=\""+_1f.data[i].onclick+"\"":"")+">"+_1f.data[i].html+"</td>\n"; } _1e+="</tr>\n"; }else{ _1e+="<tr"+(_1c.allowEditSeparator?" onclick=\"maxTable.action.editRow("+_1c.objID+", this)\""+" onmouseover=\"this.className='"+_1c.style["separator-hover"]+"'\" onmouseout=\"this.className='"+_1c.style["separator"]+"'\"":"")+" class=\""+_1c.style["separator"]+"\">\n"+"<td colspan=\""+_1c.columns.length+"\">"+_1f.data+"</td>"+"</tr>\n"; } return _1e; }; maxTable.ui.addRow=function(_21,_22,_23){ var _24=$id(_21.id); var _25=_24.rows.length-(_21.allowInsert?1:0); var _26=_24.insertRow(_25); var _27; if(_21.separatorType!="none"&&_22){ _27=_26.insertCell(); _27.colSpan=_21.columns.length; if(_23){ _21.data.push(_23); }else{ _21.data.push(_21.defaultSeparatorText); } }else{ for(var i=0;i<_21.columns.length;i++){ _27=_26.insertCell(); maxTable.action.addRowEventHelper(_21,_27,i); } if(_23){ _21.data.push(_23); }else{ _21.data.push($clone(_21.defaultRowData)); } } maxTable.ui.updateRow(_21,_21.data.length-1); return _21.data.length-1; }; maxTable.ui.deleteRow=function(_29,_2a){ var _2b=$id(_29.id); if(_29.showEditControl&&_29.inEditDataIndex==_2a&&_29.inAction=="edit"){ _2b.deleteRow(_2a+2); _29.inAction=""; _29.inEditRow=null; _29.inEditDataIndex=-1; } _2b.deleteRow(_2a+1); var _2c=_29.data.splice(_2a,1)[0]; return _2c; }; maxTable.ui.editRow=function(_2d,_2e){ if(_2d.inAction=="pre_add"){ _2d.inAction="add"; }else{ _2d.inAction="edit"; } _2d.inEditRow=$id(_2d.id).rows(_2e+1); _2d.inEditDataIndex=_2e; _2d.moveOffset=0; _2d.inEditBackupData=$clone(_2d.data[_2d.inEditDataIndex]); maxTable.ui.updateRow(_2d,_2d.inEditDataIndex); if(_2d.showEditControl){ var _2f=$id(_2d.id).insertRow(_2d.inEditRow.rowIndex+1); _2f.className=_2d.style["edit-control"]; var _30=_2f.insertCell(); _30.colSpan=_2d.columns.length; _30.innerHTML=maxTable.ui.buildEditControls(_2d); } _30=null; _2f=null; }; maxTable.ui.cancelEditRow=function(_31){ if(_31.showEditControl){ $id(_31.id).deleteRow(_31.inEditRow.rowIndex+1); } if(_31.moveOffset!=0){ var _32=$id(_31.id); _32.moveRow(_31.inEditRow.rowIndex,_31.inEditRow.rowIndex-_31.moveOffset); } if(_31.inAction=="add"){ _31.data.splice(_31.inEditRow.rowIndex-1,1); _31.inEditRow.removeNode(true); }else{ if(_31.inAction!="save"){ _31.data[_31.inEditDataIndex]=$clone(_31.inEditBackupData); } _31.inAction=""; maxTable.ui.updateRow(_31,_31.inEditDataIndex); } _31.inAction=""; _31.inEditRow=null; _31.inEditDataIndex=-1; }; maxTable.ui.doCheckbox=function(_33,_34,_35,_36){ var col=_35; if(_33.columns[_35].name){ col=_33.columns[_35].name; } if(_36!=undefined){ _33.data[_34][col]=_36; }else{ var _38=_33.data[_34][col]; if(_38){ _33.data[_34][col]=false; }else{ _33.data[_34][col]=true; } } maxTable.ui.updateRow(_33,_34); }; maxTable.ui.updateRow=function(_39,_3a){ var _3b=false; var _3c=1; if(_39.inAction=="edit"||_39.inAction=="add"){ _3b=true; if(_39.inEditDataIndex!=_3a){ _3b=false; } _3c=_39.inEditDataIndex<_3a?2:1; } var _3d=$id(_39.id).rows(_3a+_3c); if(!_3d){ return; } var _3e=maxTable.ui.buildCellHTML(_39,_3a); if(!_3e){ return; } if(_3e.type=="array"){ if(_3b){ _3d.onclick=null; _3d.onmouseover=null; _3d.onmouseout=null; _3d.className=_39.style["edit"]; }else{ _3d.onclick=function(){ return maxTable.action.editRow(_39,this); }; _3d.onmouseover=function(){ this.className=_39.style["hover"]; }; _3d.onmouseout=function(){ this.className=_39.style["row"]; }; _3d.className=_39.style["row"]; } for(var i=0;i<_3e.data.length;i++){ if(!_3e.data[i].noUpdate){ _3d.cells[i].innerHTML=_3e.data[i].html; } } }else{ _3d.cells[0].colSpan=_39.columns.length; _3d.cells[0].innerHTML=_3e.data; if(_3b){ _3d.onclick=null; _3d.onmouseover=null; _3d.onmouseout=null; _3d.className=_39.style["separator-edit"]; }else{ _3d.onclick=function(){ return maxTable.action.editRow(_39,this); }; _3d.onmouseover=function(){ this.className=_39.style["separator-hover"]; }; _3d.onmouseout=function(){ this.className=_39.style["separator"]; }; _3d.className=_39.style["separator"]; } } }; maxTable.ui.buildCellHTML=function(_40,_41){ var _42=_40.data[_41]; if(!_42){ return null; } if(maxTable.data.isSeparator(_40,_41)){ var _43=""; if(_40.separatorType=="text"){ if(_40.inAction=="edit"||_40.inAction=="add"){ _43="<input id=\""+_40.id+"_edit_0\""+" value=\""+_42.$encodeHTML()+"\" type=\"text\" class=\"text\" />"; }else{ _43=_42.$encodeHTML(); } }else{ _43=_40.controlUI["separator"]; } return {type:"separator",data:_43}; }else{ var _44=[]; for(var i=0;i<_40.columns.length;i++){ var _46=i; if(_40.dataType=="object"){ _46=_40.columns[i].name; _44[i]={}; }else{ _44[i]=[]; } switch(_40.columns[i].type){ case "radio": if(_40.columns[i].customUI){ _44[i]["html"]=(_42[_46]==true?_40.columns[i].customUI["checked"]:_40.columns[i].customUI["unchecked"]); }else{ _44[i]["html"]=(_42[_46]==true?_40.controlUI["radio_checked"]:_40.controlUI["radio"]); } if(!_40.columns[i].readOnly){ if(_40.inAction=="init"){ _44[i]["onclick"]="maxTable.action.radioClick("+_40.objID+", this, "+i+")"; } } break; case "checkbox": if(_40.columns[i].customUI){ _44[i]["html"]=(_42[_46]==true?_40.columns[i].customUI["checked"]:_40.columns[i].customUI["unchecked"]); }else{ _44[i]["html"]=(_42[_46]==true?_40.controlUI["checkbox_checked"]:_40.controlUI["checkbox"]); } if(!_40.columns[i].readOnly){ if(_40.inAction=="init"){ _44[i]["onclick"]="maxTable.action.checkBoxClick("+_40.objID+", this, "+i+")"; } } break; case "select": if(!_40.columns[i].readOnly&&(_40.inAction=="edit"||_40.inAction=="add")){ _44[i]["html"]="<select id=\""+_40.id+"_edit_"+_46+"\""+">"; for(var j=0;j<_40.columns[i].selectOptions.length;j++){ _44[i]["html"]+="<option value=\""+_40.columns[i].selectOptions[j][1]+"\""+(_42[_46]==_40.columns[i].selectOptions[j][1]?" selected=\"selected\"":"")+">"+_40.columns[i].selectOptions[j][0]+"</option>"; } _44[i]["html"]+="</select>"; }else{ if(_42[_46]==""){ _44[i]["html"]=" "; }else{ _44[i]["html"]=_42[_46].$encodeHTML(); } } break; case "textarea": if(!_40.columns[i].readOnly&&(_40.inAction=="edit"||_40.inAction=="add")){ _44[i]["html"]="<textarea id=\""+_40.id+"_edit_"+_46+"\""+(_40.columns[i].rows?" rows=\""+_40.columns[i].rows+"\"":"")+">"+_42[_46].$encodeHTML(true)+"</textarea>"; }else{ if(_42[_46]==""){ _44[i]["html"]=" "; }else{ _44[i]["html"]=_42[_46].$encodeHTML(); } } break; case "html": if(_40.inAction=="init"){ _44[i]["html"]=_42[_46]; }else{ _44[i]["noUpdate"]=true; } break; case "custom": var tmp=_40.columns[i].customBuilder(_41,i); if(tmp==null){ _44[i]["noUpdate"]=true; }else{ _44[i]["html"]=_40.columns[i].customBuilder(_41,i); } break; default: if(!_40.columns[i].readOnly&&(_40.inAction=="edit"||_40.inAction=="add")){ _44[i]["html"]="<input id=\""+_40.id+"_edit_"+_46+"\""+" value=\""+_42[_46].$encodeHTML()+"\" type=\"text\" class=\"text\" />"; }else{ if(_42[_46]==""){ _44[i]["html"]=" "; }else{ _44[i]["html"]=_42[_46].$encodeHTML(); } } } if(_40.columns[i].editNote&&(_40.inAction=="edit"||_40.inAction=="add")){ _44[i]["html"]+="<div class=\""+_40.style["edit-note"]+"\">"+_40.columns[i].editNote+"</div>"; } } return {type:"array",data:_44}; } }; maxTable.ui.buildEditControls=function(_49){ if(_49.content["buildEditControls"]){ return _49.content.buildEditControls(); } var str=""; for(var i=0;i<_49.editControl.length;i++){ if(_49.editControl[i].hideOnNew&&_49.inAction=="add"){ continue; } switch(_49.editControl[i].type){ case "move_up": str+="<a href=\"javascript:;\" onclick=\"maxTable.action.moveRow("+_49.objID+", -1)\">"+_49.controlUI["move_up"]+"</a>"; break; case "move_down": str+="<a href=\"javascript:;\" onclick=\"maxTable.action.moveRow("+_49.objID+", 1)\">"+_49.controlUI["move_down"]+"</a>"; break; case "delete": str+="<a href=\"javascript:;\" onclick=\"maxTable.action.deleteEdit("+_49.objID+")\">"+_49.controlUI["delete"]+"</a>"; break; case "save": str+="<a href=\"javascript:;\" onclick=\"maxTable.action.saveEdit("+_49.objID+")\">"+_49.controlUI["save"]+"</a>"; break; case "cancel": str+="<a href=\"javascript:;\" onclick=\"maxTable.action.cancelEdit("+_49.objID+")\">"+_49.controlUI["cancel"]+"</a>"; break; case "html": str+=_49.editControl[i].value; break; } } return str; }; maxTable.data={}; maxTable.data.isSeparator=function(_4c,_4d){ return (_4c.separatorType!="none"&&typeof (_4c.data[_4d])=="string"); }; maxTable.data.getEditResult=function(_4e){ var _4f=$clone(_4e.data[_4e.inEditDataIndex]); if(maxTable.data.isSeparator(_4e,_4e.inEditDataIndex)){ if(_4e.separatorType=="text"){ _4f=$id(_4e.id+"_edit_0").value; if(_4f.replace(" ","")==""){ alert(_4e.lang["sep_require"]); return null; } }else{ _4f="---"; } }else{ for(var i=0;i<_4e.columns.length;i++){ if(!_4e.columns[i].readOnly){ var _51=i; if(_4e.dataType=="object"){ _51=_4e.columns[i].name; } if(_4e.columns[i].type=="text"||_4e.columns[i].type=="textarea"){ _4f[_51]=$id(_4e.id+"_edit_"+_51).value; } if(_4e.columns[i].type=="select"){ var obj=$id(_4e.id+"_edit_"+_51); _4f[_51]=obj.options[obj.selectedIndex].value; } if(_4e.columns[i].required&&_4f[_51].$trim()==""){ alert(_4e.lang["require"].replace("%s",_4e.columns[i].title)); return null; } } } } return _4f; }; maxTable.data.applyRowDataMove=function(_53){ var _54=_53.data[_53.inEditDataIndex]; var _55=_53.data[_53.inEditDataIndex+_53.moveOffset]; if(_53.moveOffset<0){ _53.data.splice(_53.inEditDataIndex,1); _53.data.splice(_53.inEditDataIndex+_53.moveOffset,1,_54,_55); }else{ _53.data.splice(_53.inEditDataIndex+_53.moveOffset,1,_55,_54); _53.data.splice(_53.inEditDataIndex,1); } _53.inEditDataIndex+=_53.moveOffset; _53.moveOffset=0; }; maxTable.action={}; maxTable.action.addRow=function(_56,_57){ if(_56.inAction=="edit"||_56.inAction=="add"){ if(maxTable.action.saveEdit(_56)){ maxTable.action.addRow(_56,_57); } return; } if(_56.inAction!=""){ return; } _56.inAction="pre_add"; var _58=maxTable.ui.addRow(_56,_57); maxTable.action.editRow(_56,_58); }; maxTable.action.addRowEventHelper=function(_59,_5a,i){ if(_59.columns[i].type=="radio"){ _5a.onclick=function(){ return maxTable.action.radioClick(_59,_5a,i); }; } if(_59.columns[i].type=="checkbox"){ _5a.onclick=function(){ return maxTable.action.checkBoxClick(_59,_5a,i); }; } }; maxTable.action.editRow=function(_5c,_5d){ if(!_5c.allowEdit){ return; } if(typeof (_5d)=="number"){ _5d=$id(_5c.id).rows(_5d+1); } if(_5c.inEditRow==_5d){ return; } if(_5c.inEditRow!=_5d&&(_5c.inAction=="add"||_5c.inAction=="edit")){ if(_5c.inAction=="add"){ maxTable.action.cancelEdit(_5c); maxTable.action.editRow(_5c,_5d); }else{ if(maxTable.action.saveEdit(_5c)){ maxTable.action.editRow(_5c,_5d); } } return; } if(!_5c.event.beforeEdit(_5d.rowIndex-1)){ _5c.inEditRow=null; _5c.inEditDataIndex=-1; return; } maxTable.ui.editRow(_5c,_5d.rowIndex-1); _5c.event.afterEdit(); }; maxTable.action.moveRow=function(_5e,_5f){ var _60=$id(_5e.id); var _61=_5e.inEditRow.rowIndex; if(_5f==-1){ if(_61==1&&_5f==-1){ return; } _60.moveRow(_61,_61-1); if(_5e.showEditControl){ _60.moveRow(_61+1,_61); } }else{ if(_61==(_60.rows.length-(_5e.showEditControl?3:2))&&_5f==1){ return; } if(_5e.showEditControl){ _60.moveRow(_61+1,_61+2); } _60.moveRow(_61,_61+1); } _5e.moveOffset+=_5f; }; maxTable.action.saveEdit=function(_62){ if(_62.inAction!="add"&&_62.inAction!="edit"){ return false; } _62.inEditResultData=maxTable.data.getEditResult(_62); if(!_62.inEditResultData){ return false; } if(_62.inAction=="add"){ if(!_62.event.beforeAdd()){ return false; } }else{ if(!_62.event.beforeUpdate()){ return false; } } if(_62.moveOffset!=0){ maxTable.data.applyRowDataMove(_62); } _62.data[_62.inEditDataIndex]=$clone(_62.inEditResultData); if(_62.inAction=="add"){ _62.event.afterAdd(); }else{ _62.event.afterUpdate(); } _62.inEditResultData=null; _62.inAction="save"; maxTable.action.cancelEdit(_62); return true; }; maxTable.action.deleteEdit=function(_63){ if(_63.inAction!="edit"){ return; } if(!_63.event.beforeDelete(_63.data[_63.inEditDataIndex])){ return; } if(!confirm(_63.lang["delete_confirm"])){ return; } var _64=maxTable.ui.deleteRow(_63,_63.inEditDataIndex); _63.event.afterDelete(_64); _63.inAction=""; _63.inEditRow=null; _63.inEditDataIndex=-1; }; maxTable.action.cancelEdit=function(_65){ if(_65.inAction==""){ return; } if(!_65.event.beforeCancel()){ return; } maxTable.ui.cancelEditRow(_65); _65.event.afterCancel(); }; maxTable.action.radioClick=function(_66,_67,_68){ if(_66.inAction!=""){ maxTable.action.saveEdit(_66); } _66.inAction="radioclick"; while(_67.tagName!="TR"){ _67=_67.parentNode; } var _69=_67.rowIndex-1; if(!_66.event.beforeRadioClick(_69,_68)){ return; } var _6a=-1; var col=_68; if(_66.dataType=="object"){ col=_66.columns[_68].name; } for(var i=0;i<_66.data.length;i++){ if(typeof (_66.data[i])=="object"){ if(_66.data[i][col]==true){ _66.data[i][col]=false; _6a=i; } } } _66.data[_69][col]=true; maxTable.ui.updateRow(_66,_6a); maxTable.ui.updateRow(_66,_69); _66.event.afterRadioClick(_6a,_69,_68); if(window.event){ window.event.cancelBubble=true; } _66.inAction=""; }; maxTable.action.checkBoxClick=function(_6d,_6e,_6f){ if(_6d.inAction!=""){ maxTable.action.saveEdit(_6d); } _6d.inAction="checkclick"; if(window.event){ window.event.cancelBubble=true; } while(_6e.tagName!="TR"){ _6e=_6e.parentNode; } var _70=_6e.rowIndex-1; if(!_6d.event.beforeCheckboxClick(_70,_6f)){ return; } maxTable.ui.doCheckbox(_6d,_70,_6f); _6d.event.afterCheckboxClick(_70,_6f); _6d.inAction=""; };